From 91bc5c3347224f1e370a92e0f08dc3faebbcf1f9 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Sun, 26 Feb 2006 10:55:21 +0100 Subject: [PATCH] The disk isn't guaranteed to be the first device in the config sxp -- make sure we can restart domains when using a boot loader even if not. Signed-off-by: Jeremy Katz --- tools/python/xen/xend/XendDomainInfo.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 5db26c1d4b..9007a2ce49 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -1502,15 +1502,14 @@ class XendDomainInfo: if not self.info['bootloader']: return # if we're restarting with a bootloader, we need to run it - # FIXME: this assumes the disk is the first device and - # that we're booting from the first disk blcfg = None config = self.sxpr() # FIXME: this assumes that we want to use the first disk - dev = sxp.child_value(config, "device") - if dev: - disk = sxp.child_value(dev, "uname") - fn = blkdev_uname_to_file(disk) + for dev in sxp.children(config, "device"): + disk = sxp.child(dev, "vbd") + if disk is None: + continue + fn = blkdev_uname_to_file(sxp.child_value(disk, "uname")) blcfg = bootloader(self.info['bootloader'], fn, 1, self.info['vcpus']) if blcfg is None: -- 2.30.2